package com.softeem.map;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.TreeMap;

/**
 * 底层数据结构:
 *  HashMap:数组 + 链表 + 红黑树
 *  LinkedHashMap:增加双向链表维护了元素的顺序
 *  TreeMap:红黑树
 *
 * 元素的顺序:
 *  HashMap:不保证插入的元素的顺序,遍历顺序不确定
 *  LinkedHashMap:可以维护当前元素查询的顺讯,可以访问的顺序进行排序
 *  TreeMap:按照键进行自然排序,如果有规定的顺序可以使用比较器进行实现
 */
public class MapDemo {
    public static void main(String[] args) {
        HashMap<String,Integer> map = new HashMap<String,Integer>();
        map.put("ab",23);
        map.put("ba",23);
        map.put("ac",23);
        map.put("bc",23);
        System.out.println(map);

        System.out.println("--------------------------------");

        LinkedHashMap<String,Integer> linkedHashMap = new LinkedHashMap<String,Integer>();
        linkedHashMap.put("ab",23);
        linkedHashMap.put("ba",23);
        linkedHashMap.put("ac",23);
        linkedHashMap.put("bc",23);
        System.out.println(linkedHashMap);

        System.out.println("--------------------------------");

        TreeMap<String,Integer> treeMap = new TreeMap<String,Integer>();
        treeMap.put("ab",23);
        treeMap.put("ba",23);
        treeMap.put("ac",23);
        treeMap.put("bc",23);
        System.out.println(treeMap);
    }
}
